import java.util.Scanner;
public class demo {

    //    杨辉三角的变形
//    以上三角形的数阵，第一行只有一个数1，以下每行的每个数，是恰好是它上面的数、左上角数和右上角的数，3个数之和（如果不存在某个数，认为该数就是0）。
//求第n行第一个偶数出现的位置。如果没有偶数，则输出-1。例如输入3,则输出2，输入4则输出3，输入2则输出-1。

    //    1.建议第二种方法
//    除了前面两行没有偶数 从第三行行开第一个偶数 出现规律是 2  3  2  4
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        if(n==1 || n==2) {
            System.out.println(-1);
        }else if(n%4==3 || n%4==1) {
            System.out.println(2);
        }else if(n%4==0) {
            System.out.println(3);
        }else {
            System.out.println(4);
        }
    }


    //    2.数组完成特殊杨辉三角
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
//        n为你要查找的行
        int n = in.nextInt();
//        m为该n行的列数
        int m = 2*n-1;
//        创建数组 全部赋值为0
        int[][] arr = new int[n][m];
        for(int i=0; i<n; i++) {
            for(int j=0; j<m; j++) {
                arr[i][j] = 0;
            }
        }
//        先将第一行第一个赋值为1
//        因为杨辉三角每行第一个和最后一个都为1
//        第二列都是 上一个+上一个左边那个的和
//        其他列(不算第一列和最后一列)  上一个+上一个左边+上一个左边的左边的和
//        因为第一行 已经为0下标了 所以不能继续从上一行的和来得到该数
//        所以我们把第一行第一个先设为 1   i从第二行开始所以i=1
        arr[0][0] = 1;
        for(int i=1; i<n; i++) {
//            将第一列和每行最后一个设为1(杨辉三角最后一个 不是数组最后一个)
            arr[i][0] = 1;
            arr[i][2*i] = 1;

//            内部其他数
            for(int j=1; j<2*i; j++) {
//                第二例特殊情况
                if(j==1) {
                    arr[i][1] = arr[i-1][0] + arr[i-1][1];
                }else {//其他列
                    arr[i][j] = arr[i-1][j-2] + arr[i-1][j-1] + arr[i-1][j];
                }
            }
        }

//        从第n行开始遍历 直到遇到偶数
        int k = 0;
        for(; k<m; k++) {
            if(arr[n-1][k]%2==0) {
                System.out.println(k+1);//结果要+1   因为下标是从0开始的
                break;
            }
        }
        if(k == m) {
            System.out.println(-1);
        }
    }



    //    二叉树的镜像
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
        public TreeNode(int val) {
            this.val = val;
        }
    }
    public TreeNode Mirror (TreeNode pRoot) {
//        为空就放回
        if(pRoot == null) {
            return pRoot;
        }
//        两个都为空就返回  其中一个为空那也要交换
        if(pRoot.left == null && pRoot.right == null) {
            return pRoot;
        }
//        交换左右子树
        TreeNode tmp = pRoot.left;
        pRoot.left = pRoot.right;
        pRoot.right = tmp;
//        递归交换树的左子树
        Mirror(pRoot.left);
//        递归交换树的右子树
        Mirror(pRoot.right);
        return pRoot;
    }

}

